#include "input_text.h"

InputText::InputText(QWidget *parent, const QString& name)
    : QLineEdit(parent), WidgetInput(name)
{
    _intValidator = new QIntValidator(this);
    _doubleValidator = new QDoubleValidator(this);
    _doubleValidator->setDecimals(6);
    _doubleValidator->setNotation(QDoubleValidator::StandardNotation);
}

void InputText::setType(const QString &type)
{
    if (type == "int") this->setValidator(_intValidator);
    else if (type == "float") this->setValidator(_doubleValidator);
}

void InputText::setValue(const QString &value)
{
    QString val = value;
    while (val.startsWith('\'')) val.remove(0, 1);
    while (val.endsWith('\'')) val.remove(val.length() - 1, 1);
    this->setText(val);
}

QString InputText::getValue() const
{
    if (this->validator()) return this->text();
    return "'" + this->text() + "'";
}

bool InputText::isEmpty() const
{
    return this->text().isEmpty();
}
